import os

def modify_class_id_in_txt_files(dataset_path):
    """
    将dataset路径下所有txt文件的第一个数字（class_id）修改为1
    
    参数:
    dataset_path (str): 数据集根目录路径
    """
    # 检查数据集路径是否存在
    if not os.path.exists(dataset_path):
        print(f"错误: 数据集路径 '{dataset_path}' 不存在")
        return
    
    # 遍历数据集路径下的所有文件和文件夹
    for root, dirs, files in os.walk(dataset_path):
        for file in files:
            # 只处理txt文件
            if file.endswith('.txt'):
                file_path = os.path.join(root, file)
                
                try:
                    # 读取文件内容
                    with open(file_path, 'r') as f:
                        lines = f.readlines()
                    
                    modified_lines = []
                    # 处理每一行，修改class_id
                    for line in lines:
                        line = line.strip()
                        if line:
                            parts = line.split()
                            if parts:
                                # 修改第一个数字为1，保留其余部分不变
                                parts[0] = '1'
                                modified_line = ' '.join(parts) + '\n'
                                modified_lines.append(modified_line)
                    
                    # 写回修改后的内容
                    with open(file_path, 'w') as f:
                        f.writelines(modified_lines)
                    
                    print(f"已修改文件: {file_path}")
                    
                except Exception as e:
                    print(f"处理文件 {file_path} 时出错: {e}")

if __name__ == "__main__":
    # 设置数据集路径，请根据实际情况修改
    dataset_path = "/home/lhx/pcbsyn/data_zoo/splitsyntruecolor/labels"
    
    # 执行修改操作
    modify_class_id_in_txt_files(dataset_path)    